﻿

/*** 校验所有输入域是否含有特殊符号字符包括： 单引号 ' 加号 +  星号 * 斜杠 \ 尖号 ^ 问号 ？***/
function YZ(form) {

    for (var i = 0; i < form.elements.length; i++) {
        if (form.elements[i].type == "text") {

            if (!/^[^'+<>^?\\*]*$/.test(form.elements[i].value)) {
                form.elements[i].select();
                form.elements[i].focus();
                return ShowError(i, form.elements[i].getAttribute("InvertedComma"), 0);
                break;
            }
            //验证正整数字
            if (form.elements[i].getAttribute("NumericOnlyZS") != null) {
                if (!/^[0-9]*$/.test(form.elements[i].value)) {
                    form.elements[i].select();
                    form.elements[i].focus();
                    return ShowError(i, form.elements[i].getAttribute("NumericOnlyZS"), 1);
                    break;
                }
            }
            //验证非负数字
            if (form.elements[i].getAttribute("NumericOnlyFFS") != null) {
                if (!/^[0-9.]*$/.test(form.elements[i].value)) {
                    form.elements[i].select();
                    form.elements[i].focus();
                    return ShowError(i, form.elements[i].getAttribute("NumericOnlyFFS"), 4);
                    break;
                }
            }
            //验证必填
            if (form.elements[i].getAttribute("NotNull") != null) {
                if (Isnull(form.elements[i].value)) {
                    form.elements[i].select();
                    form.elements[i].focus();
                    return ShowError(i, form.elements[i].getAttribute("NotNull"), 2);
                    break;
                }
            }
            //验证日期型
            if (form.elements[i].getAttribute("DateTimeOnly") != null) {
                if (!isvaliddate(form.elements[i].value)) {
                    form.elements[i].select();
                    form.elements[i].focus();
                    return ShowError(i, form.elements[i].getAttribute("DateTimeOnly"), 3);
                    break;
                }
            }
        }
        else if (form.elements[i].type == "textarea") {
        if (!/^[^'+<>^?\\*]*$/.test(form.elements[i].value)) {
                form.elements[i].select();
                form.elements[i].focus();
                return ShowError(i, form.elements[i].getAttribute("YZ"),0);
                break;
            }
        }
    }
    return true;
}
 //提示有非法字符
function ShowError(errorTag, testname, sort) {
    if (sort == 0) {
        if (testname == null) {
            alert("该文本框中不能含有\n\n  单引号: '  加号: +    尖角号: < >   尖号 \^   问号 ?   斜杠 \\  星号 * \n\n请检查输入！");
        }
        else {
            alert(testname + "该文本框中不能含有\n\n  单引号: '  加号: +    尖角号: < >   尖号 \^   问号 ?   斜杠 \\  星号 * \n\n请检查输入！");
        }
    }
    if (sort == 1) {
        if (testname == null) {
            alert("该文本框中只能输入正数 \n\n请检查输入！");
        }
        else {
            alert(testname + "只能输入正数 \n\n请检查输入！");
        }
    }
    if (sort == 2) {
        if (testname == null) {
            alert("该文本框必须输入 \n\n请检查输入！");
        }
        else {
            alert(testname + "必须输入 \n\n请检查输入！");
        }
    }
    if (sort == 3) {
        if (testname == null) {
            alert("该文本框必须输入日期 \n\n请检查输入！");
        }
        else {
            alert(testname + "必须输入日期 \n\n请检查输入！");
        }
    }
    if (sort == 4) {
        if (testname == null) {
            alert("该文本框中只能输入非负数字 \n\n请检查输入！");
        }
        else {
            alert(testname + "必须输入非负数字 \n\n请检查输入！");
        }
    }
     return false;
}
//判断是否为空
function Isnull(str) {
    if (str == "") return true
    else {
        str = str.replace(/(^\s*)|(\s*$)/g, "");
        if (str.length == 0) return true;
        else return false;
    }
}
//判断是否为日期(格式:yyyy年mm月dd日,yyyy-mm-dd,yyyy/mm/dd,yyyymmdd) 
function isvaliddate(str) {
    var newstr = "";
    var year, month, day;
    for (var i = 0; i < str.length; i++) {
        if (/^[0-9]*$/.test(str.charAt(i))){
            newstr += str.charAt(i);
        }
    }
    if (newstr.length != 8) {
        return false;
    }
    //分配日期
    year = newstr.substr(0, 4);
    month = newstr.substr(4, 2);
    day = newstr.substr(6, 2);
    //判断
    if (month < 1 || month > 12) {
        return false;
    }
    if (day < 1 || day > 31) {
        return false;
    }
    if ((month == 4 || month == 6 || month == 9 || month == 11) && day == 31) {
        return false;
    }
    if (month == 2) {
        var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
        if (day > 29) {
            return false;
        }
        if ((day == 29) && (!isleap)) {
            return false;
        }
    }
    return true;
}
//验证只能输入数字
//方法 onkeyup="value=ReplaceNumberOnly(value);"
function ReplaceNumberOnly(value) {
     var str
     if (!/^[0-9]*$/.test(value)) {
         str = value.replace(/[^0-9]/g, '');
         return str;
    }
    else
    {
     return value;
    }

}
//验证只能输入数字和字母
//方法 onkeyup="value=ReplaceNumberOnlyChar(value);"
function ReplaceNumberOnlyChar(value) {
    var str
    if (!/^[A-Za-z0-9]*$/.test(value)) {
        str = value.replace(/[^A-Za-z0-9]/g, '');
        return str;
    }
    else {
        return value;
    }

}
//把你认为是全角的字符赋值给数组str1，就可以了 判断全角和半角了
function YZQZ(value) {
    var str1 = value;
    var re =  /[^\x00-\x80]/; //或    /[^\0-\127]/    十进制表示
    for (var i = 0; i < str1.length; i++) {
        if (re.test(str1.charAt(i))) {
            alert("找到全角字符，字符为：" + str1.charAt(i));
        }
    }
}